package com.wy;

import com.wy.Task.ReadTask;
import com.wy.Task.WriteTask;
import sun.misc.Signal;
import sun.misc.SignalHandler;

public class Run {
    public static volatile boolean flag = true;

    public static void main(String[] args) {
        if (args.length != 0) {
            String arg = args[0];
            if (arg.equals("start")){
                flag = true;
                System.out.println("接收到参数为 " + arg);
                registeredSignalProcessor();
                new Thread(new ReadTask(),"read").start();
                new Thread(new WriteTask(),"write").start();
            }
        } else {
            System.out.println("没有接收到参数");
        }
    }

    public static void registeredSignalProcessor(){
        // 注册信号处理器
        SignalHandler handler = new SignalHandler() {
            public void handle(Signal sig) {
                System.out.println("Signal " + sig + " received.");
                // 在这里执行清理操作
                System.out.println("开始退出程序");
                flag = false;
            }
        };
        // 为 SIGTERM 信号（进程终止请求）添加处理器
        Signal.handle(new Signal("TERM"), handler);
        // 为 SIGINT 信号（Ctrl+C）添加处理器
        Signal.handle(new Signal("INT"), handler);
    }
}
